﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using AdministracionAreasComunesWeb.Models;

namespace AdministracionAreasComunesWeb.Controllers
{
    public class CuotaMensualController : Controller
    {
        private List<CuotaMensual> CrearCuotasMensuales()
        {
            CuotasMensualesWS.CuotasMensualesServiceClient proxy = new CuotasMensualesWS.CuotasMensualesServiceClient();
            List<CuotaMensual> cuotasmensuales = new List<CuotaMensual>();

            var listaAC = proxy.ListarCuotasMensuales();

            foreach (CuotasMensualesWS.CuotaMensual prop in listaAC)
            {
                cuotasmensuales.Add(new CuotaMensual()
                {
                    Torre = Convert.ToInt32(prop.Torre),
                    Dpto = Convert.ToInt32(prop.Dpto),
                    Cuota = Convert.ToDouble(prop.Cuota),
                });
            }
            return cuotasmensuales;
        }
       
        private CuotaMensual ObtenerCuotaMensual(int id)
        {
            List<CuotaMensual> cuotasmensuales = (List<CuotaMensual>)Session["cuotasmensuales"];
            CuotaMensual model = cuotasmensuales.Single(delegate(CuotaMensual cuotamensual)
            {
                if (cuotamensual.Torre * 10 + cuotamensual.Dpto == id) return true;
                else return false;
            });
            return model;
        }

        public ActionResult Index()
        {
            if (Session["cuotasmensuales"] == null)
                Session["cuotasmensuales"] = CrearCuotasMensuales();
            List<CuotaMensual> model = (List<CuotaMensual>)Session["cuotasmensuales"];
            return View(model);
        }

        //
        // GET: /CuotaMensual/Details/5
        public ActionResult Details(int id)
        {
            CuotaMensual model = ObtenerCuotaMensual(id);
            return View(model);
        }

        //
        // GET: /CuotaMensual/Create
        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /CuotaMensual/Create
        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                CuotasMensualesWS.CuotasMensualesServiceClient proxy = new CuotasMensualesWS.CuotasMensualesServiceClient();
                string msjResultado = proxy.CrearCuotaMensual(int.Parse(collection["Torre"]), int.Parse(collection["Dpto"]), double.Parse(collection["Cuota"]));

                if (msjResultado.Equals(""))
                {
                    List<CuotaMensual> CuotasMensuales = (List<CuotaMensual>)Session["cuotasmensuales"];
                    CuotasMensuales.Add(new CuotaMensual()
                    {
                        Torre = int.Parse(collection["Torre"]),
                        Dpto = int.Parse(collection["Dpto"]),
                        Cuota = double.Parse(collection["Cuota"])
                    });
                    return RedirectToAction("Index");
                }
                else
                {
                    ViewData["MsjError"] = "--- ERROR! " + msjResultado;
                    return View();
                }
            }
            catch
            {
                ViewData["MsjError"] = "--- ERROR! Datos incompatibles ---";
                return View();
            }
        }
    }
}